使用此代码:
input = gets.chomp.downcase! puts input
如果输入中至少有一个大写字母,输入将被放在屏幕上,没有其大写字母.但是如果输入没有大写字母,它就会放置nil
,就像没有写入任何东西一样.
我希望我的输入完全落后; 如果它是一个没有大写字母的字符串,它应该返回相同的字符串.
我想过这样的事情:
input = gets.chomp if input.include(uppercase) then input.downcase! end
但这不起作用.我希望有人知道我应该怎么做.
根据String的文档:(重点是我的添加)
downcase
返回str的副本,所有大写字母都替换为小写字母.该操作是区域设置不敏感的 - 只有字符"A"到"Z"受到影响.注意:案例替换仅在ASCII区域有效.
downcase!
下载str的内容,如果没有进行任何更改则返回nil.注意:案例替换仅在ASCII区域有效.
基本上它说是小写!nil
如果没有大写字母,(带感叹号)将返回.
要修复你的程序:
input = gets.chomp.downcase puts input
希望有所帮助!
这将有效:
input = gets.chomp.downcase puts input
串#downcase
返回修改后的字符串,并保留原始未修改的字符串.
str = "Hello world!" str.downcase # => "hello world!" str # => "Hello world!"
串#downcase!
修改原始字符串,nil
如果未进行任何更改则返回; 如果进行了更改,则返回新字符串.
str = "Hello world!" str.downcase! # => "hello world!" str # => "hello world!" str.downcase! # => nil
!(砰)的方法
具有!
/非!
变体的Ruby方法以类似的方式运行是常见的.请参阅此文章,深入解释原因.